-- 红果APP节点配置
local M = {}

-- 分辨率配置
M.分辨率配置 = {
    [720] = {  -- 720*1280分辨率配置（默认基准）
        比例 = 1.0,
        宽度 = 720,
        高度 = 1280
    },
    [1080] = { -- 1080*1920分辨率配置
        比例 = 1.5,  -- 相对于基准分辨率的缩放比例
        宽度 = 1080,
        高度 = 1920
    }
}

-- 当前分辨率配置（默认使用720p）
M.当前分辨率 = M.分辨率配置[720]

-- 设置当前分辨率
function M.设置分辨率(宽度, 高度)
    -- 尝试根据宽度匹配配置
    if M.分辨率配置[宽度] then
        M.当前分辨率 = M.分辨率配置[宽度]
        print("使用预设分辨率配置: " .. 宽度 .. "x" .. 高度)
        return true
    end
    
    -- 如果没有预设配置，创建一个新的配置
    local 基准宽度 = M.分辨率配置[720].宽度
    local 比例 = 宽度 / 基准宽度
    
    M.当前分辨率 = {
        比例 = 比例,
        宽度 = 宽度,
        高度 = 高度
    }
    
    print("创建自定义分辨率配置: " .. 宽度 .. "x" .. 高度 .. "，比例: " .. 比例)
    return true
end

-- 坐标转换函数（根据当前分辨率调整坐标）
function M.转换坐标(x, y)
    if not x or not y then return x, y end
    
    local 比例 = M.当前分辨率.比例 or 1.0
    return math.floor(x * 比例), math.floor(y * 比例)
end

-- 区域转换函数（转换bounds区域）
function M.转换区域(区域)
    if not 区域 or not 区域.l then return 区域 end
    
    local 比例 = M.当前分辨率.比例 or 1.0
    return {
        l = math.floor(区域.l * 比例),
        t = math.floor(区域.t * 比例),
        r = math.floor(区域.r * 比例),
        b = math.floor(区域.b * 比例)
    }
end

-- 获取适配后节点
function M.获取适配节点(节点名)
    local 原始节点 = M[节点名]
    if not 原始节点 then return nil end
    
    -- 如果是默认分辨率或没有bounds，直接返回原始节点
    if M.当前分辨率.比例 == 1.0 or not 原始节点[5] or not 原始节点[5].bounds then
        return 原始节点
    end
    
    -- 创建新节点副本
    local 新节点 = {
        原始节点[1],
        原始节点[2],
        原始节点[3],
        原始节点[4],
        table.copy(原始节点[5])  -- 深复制第5个元素
    }
    
    -- 转换bounds区域
    if 新节点[5].bounds then
        新节点[5].bounds = M.转换区域(新节点[5].bounds)
    end
    
    return 新节点
end

-- 输入框配置
M.输入框 = {{
    class = "android.widget.FrameLayout",
    package = "com.phoenix.read",
    bounds = {l = 32, t = 60, r = 688, b = 132}
}}


-- 输入框节点
M.输入内容1 = className("android.widget.EditText"):packageName("com.phoenix.read")

-- 搜索按钮节点
M.搜索按钮 = {0, 0, 0, 0, {
    className = "android.widget.TextView",
    package = "com.phoenix.read",
    text = "搜索"
}}

-- 首页搜索框节点
M.首页搜索 = {0, 0, 0, 0, {
    class = "android.view.View",
    package = "com.phoenix.read",
    bounds = {l = 648, t = 66, r = 688, b = 106}
}}

-- 搜索结果页搜索按钮
M.搜索 = {0, 0, 0, 0, {
    class = "android.widget.TextView",
    package = "com.phoenix.read",
    bounds = {l = 624, t = 75, r = 688, b = 118}
}}

-- 搜索结果第一项
M.搜索结果第一项 = {0, 0, 0, 0, {
    class = "android.view.View",
    package = "com.phoenix.read",
    index = 0,  -- 通常第一个结果的索引为0
    bounds = {l = 80, t = 180, r = 640, b = 350}  -- 这是一个估计值，实际使用时需要调整
}}

-- 收益日报相关节点
M.收益日报按钮 = {0,0,0,0,{
    class="com.lynx.tasm.behavior.ui.LynxFlattenUI",
    package="com.phoenix.read",
    text="收益日报奖励B",
    bounds={l=142,t=184,r=438,b=226}
}}

M.立即领取按钮 = {0,0,0,0,{
    class="com.lynx.tasm.behavior.ui.text.FlattenUIText",
    package="com.phoenix.read",
    text="立即领取",
    bounds={l=541,t=205,r=645,b=241}
}}

-- 公共返回按钮
M.返回按钮 = {0,0,0,0,{
    className = "android.widget.ImageView",
    packageName = "com.phoenix.read",
    desc = "返回"
}}

-- 底部导航栏节点
M.首页选项卡 = {0,0,0,0,{
    class = "android.widget.TextView",
    package = "com.phoenix.read",
    text = "首页",
    bounds = {l=88, t=1238, r=128, b=1266}
}}

M.福利选项卡 = {0,0,0,0,{
    class = "android.widget.TextView",
    package = "com.phoenix.read",
    text = "福利",
    bounds = {l=256, t=1238, r=296, b=1266}
}}

M.追剧选项卡 = {0,0,0,0,{
    class = "android.widget.TextView",
    package = "com.phoenix.read",
    text = "追剧",
    bounds = {l=424, t=1238, r=464, b=1266}
}}

M.我的选项卡 = {0,0,0,0,{
    class = "android.widget.TextView",
    package = "com.phoenix.read",
    text = "我的",
    bounds = {l=592, t=1238, r=632, b=1266}
}}

-- 推荐节点
M.推荐节点 = {0,0,0,0,{
    class = "android.widget.TextView",
    package = "com.phoenix.read",
    text = "推荐",
    bounds = {l=32, t=65, r=96, b=108}
}}

-- 收藏和点赞按钮定义
M.收藏按钮 = {0,0,0,0,{
    class="android.widget.LinearLayout",
    package="com.phoenix.read",
    text="",
    bounds={l=608,t=806,r=700,b=898}
}}

M.点赞按钮 = {0,0,0,0,{
    class="android.widget.LinearLayout",
    package="com.phoenix.read",
    text="",
    bounds={l=608,t=967,r=700,b=1096}
}}

-- 取消按钮节点（收藏意外弹窗）
M.取消按钮 = {0,0,0,0,{
    class="android.widget.TextView",
    package="com.phoenix.read",
    text="取消",
    bounds={l=81,t=675,r=359,b=783}
}}

-- 按钮ID配置
M.可能的收藏按钮ID = {"com.phoenix.read:id/bxj", "com.phoenix.read:id/collection_layout"}
M.可能的点赞按钮ID = {"com.phoenix.read:id/d57", "com.phoenix.read:id/like_layout"}

-- APP包名
M.APP包名 = "com.phoenix.read"

-- 倍速节点（用于判断是否已进入视频播放界面）
M.倍速节点 = {0,0,0,0,{
    class="android.widget.TextView",
    package="com.phoenix.read",
    text="倍速"
}}

-- 在1080p分辨率下的特定调整（如果基于比例转换不够精确的情况）
M.分辨率特定调整 = {
    [1080] = {
        收藏按钮 = {0,0,0,0,{
            class="android.widget.LinearLayout",
            package="com.phoenix.read",
            text="",
            bounds={l=912,t=1209,r=1050,b=1347}
        }},
        点赞按钮 = {0,0,0,0,{
            class="android.widget.LinearLayout",
            package="com.phoenix.read",
            text="",
            bounds={l=912,t=1450,r=1050,b=1644}
        }},
        取消按钮 = {0,0,0,0,{
            class="android.widget.TextView",
            package="com.phoenix.read",
            text="取消",
            bounds={l=122,t=1012,r=538,b=1174}
        }}
    }
}

-- Helper函数，深复制表
function table.copy(t)
    if type(t) ~= 'table' then return t end
    local res = {}
    for k, v in pairs(t) do
        if type(v) == 'table' then
            res[k] = table.copy(v)
        else
            res[k] = v
        end
    end
    return res
end

return M 